package analizadorLexico;



public class Token {

	public enum TipoToken {tokenFin, tokenComentario, tokenIden, tokenDosPuntos, 
		tokenPuntoYComa, tokenPunto, tokenCaracter, tokenParentesisAbierto, tokenParentesisCerrado,
		tokenMenor, tokenMayor, tokenIgual, tokenMenorIgual, tokenMayorIgual,
		tokenDesplazamientoIzquierda, tokenDesplazamientoDerecha, tokenIgualIgual,
		tokenDistinto, tokenSuma, tokenResta, tokenMultiplicacion, tokenDivision, tokenModulo,
		tokenNatural, tokenReal, tokenTipo, tokenPalabraReservada, tokenBooleano, tokenEntero, 
		tokenFlecha, tokenLlaveAbierta, tokenLlaveCerrada, tokenCorcheteAbierto, tokenCorcheteCerrado,
		tokenComa};	
	
	private String lexema;
	
	private TipoToken tipo;
	private int fila = 0;
	private int columna = 0;

	public Token(){
		
	}
	
	public Token (TipoToken tipo, String lexema){
		this.tipo=tipo;
		this.lexema=lexema;
	}

	public Token(Token token) {
		this.tipo = token.tipo;
		this.lexema = token.lexema;
	}

	public String dameLexema(){
	
		return lexema;
	}

	public TipoToken dameTipo(){
	
		return tipo;
	}

	public String toString(){
	
		return "TOKEN Lexema = " + lexema + ", tipo = " + tipo  ;
	
	}

	public int dameFila() {
		return fila;
	}

	public void ponFila(int fila) {
		this.fila = fila;
	}

	public int dameColumna() {
		return columna;
	}

	public void ponColumna(int columna) {
		this.columna = columna;
	}

}